// 方法 1 functionplusA(...num) { var args = [] args.push(...num) var sum = function (...n) { args.push(...n) return sum } sum.toString = () => args.reduce((a, b) => a + b) return sum }
console.log('方法一测试结果:') test(plusA)
// 方法 2,内部通过柯里化来实现 functionplusB(...num) { var sum = function () { var args = [] var save = function (...n) { args.push(...n) return save } save.toString = () => args.reduce((a, b) => a + b) return save } return sum()(...num) }